home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / list / RCS / List_Insert.c,v < prev    next >
Text File  |  1990-11-27  |  4KB  |  169 lines

  1. head     1.5;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.5
  10. date     90.11.27.11.06.20;  author ouster;  state Exp;
  11. branches ;
  12. next     1.4;
  13.  
  14. 1.4
  15. date     90.09.11.14.25.08;  author kupfer;  state Exp;
  16. branches ;
  17. next     1.3;
  18.  
  19. 1.3
  20. date     88.07.16.14.44.18;  author ouster;  state Exp;
  21. branches ;
  22. next     1.2;
  23.  
  24. 1.2
  25. date     88.07.15.17.33.42;  author douglis;  state Exp;
  26. branches ;
  27. next     1.1;
  28.  
  29. 1.1
  30. date     88.06.20.09.27.27;  author ouster;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @@
  37.  
  38.  
  39. 1.5
  40. log
  41. @Eliminated inclusion of <sys.h> (didn't work for user programs
  42. anyway), add explicit declaration for panic.
  43. @
  44. text
  45. @/* 
  46.  * List_Insert.c --
  47.  *
  48.  *    Source code for the List_Insert library procedure.
  49.  *
  50.  * Copyright 1988 Regents of the University of California
  51.  * Permission to use, copy, modify, and distribute this
  52.  * software and its documentation for any purpose and without
  53.  * fee is hereby granted, provided that the above copyright
  54.  * notice appear in all copies.  The University of California
  55.  * makes no representations about the suitability of this
  56.  * software for any purpose.  It is provided "as is" without
  57.  * express or implied warranty.
  58.  */
  59.  
  60. #ifndef lint
  61. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Insert.c,v 1.4 90/09/11 14:25:08 kupfer Exp Locker: ouster $ SPRITE (Berkeley)";
  62. #endif not lint
  63.  
  64. #include <stdio.h>
  65. #include "list.h"
  66.  
  67. extern void panic();
  68.  
  69. /*
  70.  * ----------------------------------------------------------------------------
  71.  *
  72.  * List_Insert --
  73.  *
  74.  *    Insert the list element pointed to by itemPtr into a List after 
  75.  *    destPtr.  Perform a primitive test for self-looping by returning
  76.  *    failure if the list element is being inserted next to itself.
  77.  *
  78.  * Results:
  79.  *    None.
  80.  *
  81.  * Side effects:
  82.  *    The list containing destPtr is modified to contain itemPtr.
  83.  *
  84.  * ----------------------------------------------------------------------------
  85.  */
  86. void
  87. List_Insert(itemPtr, destPtr)
  88.     register    List_Links *itemPtr;    /* structure to insert */
  89.     register    List_Links *destPtr;    /* structure after which to insert it */
  90. {
  91.     if (itemPtr == (List_Links *) NIL || destPtr == (List_Links *) NIL
  92.         || !itemPtr || !destPtr) {
  93.     panic("List_Insert: itemPtr (%x) or destPtr (%x) is NIL.\n",
  94.           (unsigned int) itemPtr, (unsigned int) destPtr);
  95.     return;
  96.     }
  97.     if (itemPtr == destPtr) {
  98.     panic("List_Insert: trying to insert something after itself.\n");
  99.     return;
  100.     }
  101.     itemPtr->nextPtr = destPtr->nextPtr;
  102.     itemPtr->prevPtr = destPtr;
  103.     destPtr->nextPtr->prevPtr = itemPtr;
  104.     destPtr->nextPtr = itemPtr;
  105. }
  106. @
  107.  
  108.  
  109. 1.4
  110. log
  111. @Lint.
  112. @
  113. text
  114. @d17 1
  115. a17 1
  116. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Insert.c,v 1.3 88/07/16 14:44:18 ouster Exp Locker: kupfer $ SPRITE (Berkeley)";
  117. a20 1
  118. #include <sys.h>
  119. d22 2
  120. @
  121.  
  122.  
  123. 1.3
  124. log
  125. @Change Sys_Panic back to panic.
  126. @
  127. text
  128. @d17 1
  129. a17 1
  130. static char rcsid[] = "$Header: List_Insert.c,v 1.2 88/07/15 17:33:42 douglis Exp $ SPRITE (Berkeley)";
  131. d21 1
  132. @
  133.  
  134.  
  135. 1.2
  136. log
  137. @changed error message to complain about NIL pointer or
  138. inserting something after itself rather than having the single message
  139. that inserting something would create a loop (when it might be a nil ptr).
  140. @
  141. text
  142. @d17 1
  143. a17 1
  144. static char rcsid[] = "$Header: List_Insert.c,v 1.1 88/06/20 09:27:27 ouster Exp $ SPRITE (Berkeley)";
  145. d47 1
  146. a47 2
  147.     Sys_Panic(SYS_FATAL,
  148.           "List_Insert: itemPtr (%x) or destPtr (%x) is NIL.\n",
  149. d52 1
  150. a52 2
  151.     Sys_Panic(SYS_FATAL,
  152.           "List_Insert: trying to insert something after itself.\n");
  153. @
  154.  
  155.  
  156. 1.1
  157. log
  158. @Initial revision
  159. @
  160. text
  161. @d17 1
  162. a17 1
  163. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  164. d46 10
  165. a55 2
  166.         || !itemPtr || !destPtr || (itemPtr == destPtr)) {
  167.     panic("List_Insert: inserting this item would create a loop.\n");
  168. @
  169.